package com.springCloud.springSecurity;

/**
 * SpringSecurity的工作原理
 */
public class SpringSecurityDemo {

    /**
     * 工作原理
     * SpringSecurityFilterChain 实现了Filter，是FilterChainProxy
     *
     */
    public void demo(){

    }

    /**
     *
     * SpringSecurityFilter各个Filter的作用
     * 1、用于获取和保存SecurityContext
     * 2、用于处理表单提交的认证
     * 3、用户捕获异常的Filter
     * 4、用于保护web资源的intercepted
     */
    public void demo1(){

    }

    /**
     * 认证流程
     *
     * 1、首先把请求封装成Authentication
     * 2、然后将Authentication提交给AuthenticationManager 身份认证管理器
     * 3、AuthenticationManager 身份认证管理器认证后会填充Authentication，包括权限信息，身份信息，等细节信息，但是密码会被移除掉
     * 4、保存到安全上下文
     */
    public void demo2(){

    }


    /**
     * 授权流程
     * 1、已经认证用户访问受保护的资源，会被FilterSecurityInterceptor的子类拦截
     * 2、获取到受保护资源被访问所需要的权限
     * 3、调用AccessDecisionManager来判断是否具有权限访问
     *     3.1、授权管理器采用投票的模式
     */
    public void demo3(){

    }





}
